home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Resources / Browsers, Managers & Extensions / Mozilla Weave 0.2.7 / latest-weave.xpi / chrome / sync.jar / content / login.js < prev    next >
Text File  |  2008-07-11  |  5KB  |  156 lines

  1. var Ci = Components.interfaces;
  2. var Cc = Components.classes;
  3. var Cr = Components.results;
  4.  
  5. let Login = {
  6.   __os: null,
  7.   get _os() {
  8.     if (!this.__os)
  9.       this.__os = Cc["@mozilla.org/observer-service;1"]
  10.         .getService(Ci.nsIObserverService);
  11.     return this.__os;
  12.   },
  13.  
  14.   get _stringBundle() {
  15.     let stringBundle = document.getElementById("weaveStringBundle");
  16.     this.__defineGetter__("_stringBundle", function() { return stringBundle });
  17.     return this._stringBundle;
  18.   },
  19.  
  20.   get _loginDialog() {
  21.     delete this._loginDialog;
  22.     return this._loginDialog = document.getElementById("login-dialog");
  23.   },
  24.  
  25.   get _loginStatus() {
  26.     delete this._loginStatus;
  27.     return this._loginStatus = document.getElementById("loginStatus");
  28.   },
  29.  
  30.   get _loginStatusIcon() {
  31.     delete this._loginStatusIcon;
  32.     return this._loginStatusIcon = document.getElementById("loginStatusIcon");
  33.   },
  34.  
  35.  onLoad: function Login_onLoad() {
  36.     this._log = Log4Moz.Service.getLogger("Chrome.Login");
  37.     this._log.trace("Sync login window opened");
  38.  
  39.     this._os.addObserver(this, "weave:service:login:start", false);
  40.     this._os.addObserver(this, "weave:service:login:error", false);
  41.     this._os.addObserver(this, "weave:service:login:success", false);
  42.  
  43.     if (Weave.Utils.prefs.getBoolPref("rememberpassword"))
  44.       document.getElementById("save-password-checkbox").checked = true;
  45.     if (Weave.Utils.prefs.getBoolPref("autoconnect"))
  46.       document.getElementById("autoconnect-checkbox").checked = true;
  47.  
  48.     document.getElementById("username").value = Weave.Service.username;
  49.  
  50.     if (Weave.Service.password) {
  51.       let password = document.getElementById("password");
  52.       password.value = Weave.Service.password;
  53.     }
  54.  
  55.     let row = document.getElementById("passphrase-ui");
  56.  
  57.     if ("none" == Weave.Utils.prefs.getCharPref("encryption")) {
  58.       row.setAttribute("hidden", "true");
  59.     } else {
  60.       row.setAttribute("hidden", "false");
  61.       if (Weave.Service.passphrase) {
  62.         let passphrase = document.getElementById("passphrase");
  63.         passphrase.value = Weave.Service.passphrase;
  64.       }
  65.     }
  66.   },
  67.  
  68.   shutDown: function Login_shutDown() {
  69.     this._os.removeObserver(this, "weave:service:login:start");
  70.     this._os.removeObserver(this, "weave:service:login:error");
  71.     this._os.removeObserver(this, "weave:service:login:success");
  72.  
  73.     this._log.trace("Sync login window closed");
  74.   },
  75.  
  76.   observe: function Login__observer(subject, topic, data) {
  77.     switch(topic) {
  78.     case "weave:service:login:start":
  79.     this._loginStatusIcon.setAttribute("status", "active");
  80.     this._loginStatus.value = this._stringBundle.getString("loginStart.label");
  81.     this._loginStatus.style.color = "-moz-dialogtext";
  82.     this._loginDialog.getButton("extra2").setAttribute("disabled", "true");
  83.  
  84.     break;
  85.     case "weave:service:login:error":
  86.     this._loginStatusIcon.setAttribute("status", "error");
  87.     this._loginStatus.value = this._stringBundle.getString("loginError.label");
  88.     this._loginStatus.style.color = "red";
  89.     this._loginDialog.getButton("extra2").setAttribute("disabled", "false");
  90.     document.getElementById("username").focus();
  91.  
  92.     break;
  93.     case "weave:service:login:success":
  94.     this._loginStatusIcon.setAttribute("status", "success");
  95.     this._loginStatus.value = this._stringBundle.getString("loginSuccess.label");
  96.     this._loginStatus.style.color = "blue";
  97.     window.setTimeout(window.close, 1500);
  98.     break;
  99.     }
  100.   },
  101.  
  102.   doHelp: function Login_doHelp() {
  103.     let url = "https://services.mozilla.com/help/login/";
  104.     window.open(url);
  105.   },
  106.  
  107.   doOK: function Login_doOK() {
  108.     let username = document.getElementById("username");
  109.     let password = document.getElementById("password");
  110.     let passphrase = document.getElementById("passphrase");
  111.  
  112.     let savePass = document.getElementById("save-password-checkbox");
  113.     let autoconnect = document.getElementById("autoconnect-checkbox");
  114.  
  115.     Weave.Utils.prefs.setBoolPref("rememberpassword", savePass.checked);
  116.     Weave.Utils.prefs.setBoolPref("autoconnect", autoconnect.checked);
  117.  
  118.     if (!password.value) {
  119.       alert(this._stringBundle.getString("noPassword.alert"));
  120.       return false;
  121.     }
  122.  
  123.     if ("none" == Weave.Utils.prefs.getCharPref("encryption")) {
  124.       passphrase.value = null;
  125.     } else {
  126.       if (!passphrase.value) {
  127.         alert(this._stringBundle.getString("noPassphrase.alert"));
  128.         return false;
  129.       }
  130.  
  131.       if (password.value == passphrase.value) {
  132.         alert(this._stringBundle.getString("samePasswordAndPassphrase.alert"));
  133.         return false;
  134.       }
  135.     }
  136.  
  137.     if (Weave.Utils.prefs.getBoolPref("rememberpassword")) {
  138.       Weave.Service.password = password.value;
  139.       Weave.Service.passphrase = passphrase.value;
  140.     } else {
  141.       Weave.Service.password = null;
  142.       Weave.Service.passphrase = null;
  143.     }
  144.  
  145.     Weave.Service.loginAndInit(null, username.value,
  146.                                password.value, passphrase.value);
  147.     return true;
  148.   },
  149.  
  150.   doCancel: function Login_doCancel() { return true; }
  151.  
  152. };
  153.  
  154. window.addEventListener("load", function(e) { Login.onLoad(); }, false);
  155. window.addEventListener("unload", function(e) { Login.shutDown(e); }, false);
  156.